package main
import (
	"fmt"
	"strconv"
)

func main(){
	//string->bool
	var s1 string = "true"
	var b bool 
	b,_ = strconv.ParseBool(s1)	//ParseBool这个函数的返回值有2个，(value bool, err error)
	//value就是我们得到的布尔类型的数据
	//err出现的错误
	//我们只关注得到的布尔类型的数据，err可以直接忽略
	fmt.Printf("b的类型为：%T，b = %v \n",b,b)

	//string->int64
	var s2 string = "19"
	var i int64
	i,_ = strconv.ParseInt(s2,10,8)
	fmt.Printf("i的类型为：%T，i = %v \n",i,i)

	//string->float32/float64
	var s3 string = "3.14"
	var f float64
	f,_ = strconv.ParseFloat(s3,64)
	fmt.Printf("f的类型为：%T，f = %v \n",f,f)

	//注意：string向基本类型转换的时候，一定要确保string类型能够转换成有效的数据类型，否则最后是按照对应的默认值输出
	var s4 string = "golang"
	var b1 bool
	b1,_ = strconv.ParseBool(s4)
	fmt.Printf("b1的类型为：%T，b1 = %v \n",b1,b1)

	var s5 string = "golang"
	var num1 int64
	num1,_ = strconv.ParseInt(s5,10,8)
	fmt.Printf("num1的类型为：%T，num1 = %v \n",num1,num1)
}